﻿using System.Collections.Generic;

namespace Ewk.MachineLearning.Genetic.Programming.Program.Functions
{
    public interface IFunctionDefinition : IOutput
    {
        /// <summary>
        /// Gets the arity of the function.
        /// </summary>
        /// <remarks>The number of parameters the function takes, is called its arity.</remarks>
        int Arity { get; }

        /// <summary>
        /// Gets the <see cref="IODefinition"/> of this function.
        /// </summary>
        IEnumerable<IODefinition> InputDefinitions { get; }
    }
}